/*     */ package dm.jdbc.pool;
/*     */ 
/*     */ import dm.jdbc.driver.DmdbConnection_bs;
/*     */ import java.sql.Connection;
/*     */ import java.sql.SQLException;
/*     */ import java.util.Enumeration;
/*     */ import java.util.Hashtable;
/*     */ import javax.sql.ConnectionEvent;
/*     */ import javax.sql.ConnectionEventListener;
/*     */ import javax.sql.PooledConnection;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class DmdbPooledConnection_bs
/*     */   implements PooledConnection
/*     */ {
/*     */   private Hashtable eventListeners;
/*     */   private SQLException sqlException;
/*     */   protected Connection physicalConn;
/*     */   
/*     */   public Hashtable getEventListeners()
/*     */   {
/*  40 */     return this.eventListeners;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public void setSqlException(SQLException ex)
/*     */   {
/*  50 */     this.sqlException = ex;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*  63 */   protected Connection logicalHandle = null;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public DmdbPooledConnection_bs(Connection connection)
/*     */   {
/*  72 */     this.sqlException = null;
/*  73 */     this.physicalConn = connection;
/*  74 */     this.eventListeners = new Hashtable(10);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public synchronized void addConnectionEventListener(ConnectionEventListener listener)
/*     */   {
/*  86 */     if (this.eventListeners == null) {
/*  87 */       this.sqlException = new SQLException("Listener Hashtable Null");
/*     */     } else {
/*  89 */       this.eventListeners.put(listener, listener);
/*     */     }
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   void callListener(int i)
/*     */   {
/* 100 */     if (this.eventListeners == null) {
/* 101 */       return;
/*     */     }
/*     */     
/* 104 */     Enumeration enumeration = this.eventListeners.keys();
/* 105 */     ConnectionEvent connectionevent = new ConnectionEvent(this, 
/* 106 */       this.sqlException);
/*     */     
/* 108 */     while (enumeration.hasMoreElements()) {
/* 109 */       ConnectionEventListener connectioneventlistener = (ConnectionEventListener)enumeration
/* 110 */         .nextElement();
/* 111 */       ConnectionEventListener connectioneventlistener1 = (ConnectionEventListener)this.eventListeners
/* 112 */         .get(connectioneventlistener);
/*     */       
/* 114 */       if (i == 1) {
/* 115 */         connectioneventlistener1.connectionClosed(connectionevent);
/* 116 */       } else if (i == 2)
/*     */       {
/* 118 */         connectioneventlistener1.connectionErrorOccurred(connectionevent);
/*     */       }
/*     */     }
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public synchronized void close()
/*     */     throws SQLException
/*     */   {
/* 131 */     if (this.physicalConn != null) {
/* 132 */       ((DmdbConnection_bs)this.physicalConn).unLogicalConnection();
/* 133 */       this.physicalConn.close();
/* 134 */       this.physicalConn = null;
/*     */     }
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public synchronized Connection getConnection()
/*     */     throws SQLException
/*     */   {
/* 155 */     if (this.physicalConn == null) {
/* 156 */       this.sqlException = new SQLException("Physical Connection doesn't exis");
/* 157 */       callListener(2);
/* 158 */       return null;
/*     */     }
/*     */     
/*     */     try
/*     */     {
/* 163 */       if (this.logicalHandle != null) {
/* 164 */         this.logicalHandle.close();
/*     */       }
/* 166 */       this.logicalHandle = ((DmdbConnection_bs)this.physicalConn)
/* 167 */         .getLogicalConnection(this);
/*     */     }
/*     */     catch (SQLException sqlexception) {
/* 170 */       this.sqlException = sqlexception;
/* 171 */       callListener(2);
/* 172 */       return null;
/*     */     }
/* 174 */     return this.logicalHandle;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */   public synchronized void logicalClose()
/*     */   {
/* 181 */     callListener(1);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public synchronized void removeConnectionEventListener(ConnectionEventListener listener)
/*     */   {
/* 193 */     if (this.eventListeners == null) {
/* 194 */       this.sqlException = new SQLException("Listener Hashtable Null");
/*     */     } else {
/* 196 */       this.eventListeners.remove(listener);
/*     */     }
/*     */   }
/*     */ }


/* Location:              D:\Program Files\DBMS_20150813\jdbc\Dm7JdbcDriver17.jar!\dm\jdbc\pool\DmdbPooledConnection_bs.class
 * Java compiler version: 2 (46.0)
 * JD-Core Version:       0.7.1
 */